package cn.lin.util;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

/**
 * @author cn.Lin
 * @create 2024-12-03-9:31
 */
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class Result<T> {

    private Integer code;

    private String msg;

    private T t;

    private Integer pageNum;

    private Integer pageSize;

    private Integer total;

    /**
     * 不需要分页，无泛型
     * @param msg 返回值信息
     */
    public static Result ok(String msg){
        return new Result<>(200,msg,null,0,0,0);
    }

    /**
     * 无需分页，有泛型
     * @param msg 返回值信息
     * @param t 泛型
     */
    public static Result ok(String msg,Object t){
        return new Result<>(200,msg,t,0,0,0);
    }

    /**
     * 有分页分页，有泛型
     * @param msg 返回值信息
     * @param t 泛型
     * @param pageNum 当前页数
     * @param pageSize 当页显示条数
     * @param total 总页数
     */
    public static Result ok(String msg,Object t,Integer pageNum,Integer pageSize,Integer total){
        return new Result<>(200,msg,t,pageNum,pageSize,total);
    }

    /**
     * 错误信息返回
     */
    public static Result error(String msg){
        return new Result(500, msg, null,0,0,0);
    }
}
